1. Field of the Invention
The present invention relates to updating information shared between one or more devices in a computer system, and more particularly, to a serial bus system for shadowing registers of these devices.
2. Description of the Related Art
Personal computers are constantly evolving to provide the user with the highest performance available at the lowest cost. Performance improvements in the microprocessor and memory systems have resulted in computers so powerful that they are now capable of performing tasks that before could only be performed by large mainframe computers. Technological change is especially exemplified in the area of portable computers where power consumption efficiency is balanced against features, cost, size, weight and performance. This is especially challenging since many computer users desire the portable computer to provide nothing less than what a desktop unit can provide. The term "portable computers" is used broadly here to denote the class of computers powered by battery or solar power. Those familiar with portable computers will recognize labels such as: portable, luggable, laptop, notebook and handheld which are used to designate certain marketing segments of the larger portable computer market.
Many options are available to the computer system designer. While simply designing around the highest performance processor available will go a long way towards providing a high performance product, in today's competitive market it is not enough. The processor must be supported by high performing components including a high performance expansion bus. Several standardized expansion buses are available to the system designer including an ISA (Industry Standard Architecture) bus and an EISA (Extended Industry Standard Architecture) bus.
For the system bus, a high performance bus, such as a Peripheral Component Interconnect (PCI) bus or the EISA bus is used. The three above-described buses are familiar to those skilled in the art.
Design choices also involve certain special features of the computer that distinguish one manufacturer's computer from a competitor's. In the portable computer market this is especially challenging since added features can cause increased size and weight. For example, since software can require large amounts of storage, a high capacity hard disk drive is often desirable. However, high capacity disk drives are usually much larger and heavier than desirable for a portable computer. It is also desirable to have the ability to add functionality to the portable computer. However, providing expansion bays compromises the small size.
One known method of providing certain features without sacrificing size and weight is through the use of an expansion base unit. An expansion base unit is a non-portable unit that typically operates from AC power and resides on a user's desktop. When the user is working at the desk, the portable computer plugs into or is "hot docked" into the expansion base unit to provide the added functionality. The expansion base unit may have a network interface unit for connecting to a local area network, a high capacity disk drive, a floppy drive and other peripherals. An additional hard drive may also be resident in the expansion base unit.
Typically, in a computer system having a laptop computer unit and an expansion base unit, bus devices need to share information relating to hot docking and power management. For example, both system and expansion bus devices of the laptop unit must know when the laptop unit is hot docking or undocking from the expansion base unit in order that the bus devices can be placed in idle states while the docking or undocking is occurring.
Thus, various registers must be present in the these bus devices that share common data. A problem occurs when the data in one of these registers is updated without updating the contents of the other registers.
Reflecting the contents of one register in another register is known as "shadowing." One register is a shadowed register, whose data is shadowed by one or more shadowing registers. One way to shadow a register is to perform bus write operations to every shadowing register when the shadowed register is updated with new data. However, the shadowed or the shadowing registers might be internal registers that are not updated or accessible through the expansion or system bus.
Furthermore, shadowing by write operations on the expansion or system bus reduces the effective bandwidth of the bus and interjects potential delays in the shadowing of the new data.